package object;

/**
 * 测试重写Onject的toString方法与equal方法
 */
public class Demo {
    public static void main(String[] args) {
        Point p = new Point(1, 2);
      /*
      String toString()方法是Object定义的方法
      该方法的作用是将当前的对象转换成一个字符串Object*/

        String str = p.toString();
        System.out.println(p);

        //想控制台输出p对象
        /*
        System.out.println(Object o)
        向控制台输出一个对象时，该方法会输出该对象toString方法返回的字符串
         */
        System.out.println(p);
        String line = "对象内容" + p;
        System.out.println(line);

        /**
         * Object定义的另一个常被子类重写的方法：equals
         * 该方法的作用是判断两个同类型的实力之间的内容的是否相同
         */
        Point p2 = new Point(1, 2);
        System.out.println(p==p2);//false（==）对比的是数值
        /*
        ==为值比较，比较两个变量的值是否相同
        对于引用类型而言，保存的是地址，因此==可以理解为比较两个对象的地址是否相同
        这就意味着比较的是他们是否是同一个对象
         */
        System.out.println(p.equals(p2));//ture
        /*
        equals方法并不关心两个对象是否为同一个对象，而是关心两个对象的内容是否相同
        Object定义的该方法内部使用“=="实现，因此我们实际应用时应当重写该方法，否则该方法 没有实际意义
         */
    }

}
